package opf5.entities.repositorios;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.SQLQuery;

import opf5.entities.dominio.Jugador;
import opf5.entities.dominio.Partido;
import opf5.entities.filtrosJugadores.FiltroJugadores;
import opf5.entities.jugadores.RepositorioJugadoresEnMemoria;
import opf5.persistencia.OPF5DBGateway;
import opf5.persistencia.OPF5SessionManager;
import opf5.persistencia.proxies.JugadorDBProxy;

public class RepositorioJugadoresPersistente implements RepositorioJugadores {
	private static RepositorioJugadoresEnMemoria repositorio = new RepositorioJugadoresEnMemoria();
	
	public RepositorioJugadoresPersistente() {
		this.actualizarJugadores();
	}
	
	@Override
	public List<Jugador> getJugadores() {
		this.actualizarJugadores();		
		return repositorio.getJugadores();
	}

	public void actualizarJugadores() {
		repositorio.setJugadores(OPF5DBGateway.getJugadores());		
	}
	
	@Override
	public void agregarJugador(Jugador nuevoJugador) {
		this.actualizarJugadores();		
	}

	@Override
	public Jugador getJugadorPorId(String idUsuario) {
		return repositorio.getJugadorPorId(idUsuario);
	}

	@Override
	public List<Jugador> getJugadoresReemplazo(Jugador jugador, Partido partido) {
		return repositorio.getJugadoresReemplazo(jugador, partido);
	}

	@Override
	public List<Jugador> filtrarJugadores(FiltroJugadores filtro) {
		return repositorio.filtrarJugadores(filtro);
	}

}
